/**
 * 
 */
package br.com.sc.persistencia.dao.impl;

import java.util.List;

import javax.persistence.Query;

import br.com.sc.excecao.SCException;
import br.com.sc.negocio.entidade.Seguidor;
import br.com.sc.persistencia.dao.SCCrudDao;
import br.com.sc.persistencia.dao.SeguidorDAO;

/**
 * @author Flavio Canedo
 *
 */
public class SeguidorDaoImpl extends SCCrudDao<Seguidor> implements SeguidorDAO{

	/**
	 * @param clazz
	 */
	public SeguidorDaoImpl() {
		super(Seguidor.class);
	}

	/** 
	 * @see br.com.sc.persistencia.dao.SCCrudDaoIF#
	 * 		consultar(br.com.sc.negocio.entidade.SCEntidade)
	 */
	@Override
	@SuppressWarnings("unchecked")
	public List<Seguidor> consultar(Seguidor criterios) throws SCException {
		StringBuilder comando = new StringBuilder();
		comando.append(criarComandoPesquisa(clazz));

		comando.append("WHERE 1 = 1 \n");
		if (criterios.getNome() != null && criterios.getNome().length() != 0) {
			comando.append("AND entidade.nome like '%" + criterios.getNome()+ "%'");
		}
		comando.append(" ORDER BY entidade.nome ASC ");
		Query query = getEntityManager().createQuery(comando.toString());
		return (List<Seguidor>) query.getResultList();
	}

}
